from typing import Dict, List, Any, Optional

# 部门相关工具定义
class DeptTools:
    def __init__(self, http_client):
        self.http = http_client
    
    def get_depts(self, params: Optional[Dict[str, Any]] = None):
        """获取部门列表"""
        print('获取部门列表')
        response = self.http.get('/api.php/v1/depts', params=params)
        print(response)
        return response
        
    def get_dept_detail(self, dept_id: int):
        """获取部门详情"""
        print(f'获取部门ID={dept_id}的详情')
        response = self.http.get(f'/api.php/v1/depts/{dept_id}')
        print(response)
        return response
    
    # 用于注册工具到MCP
    def register(self, mcp_instance):
        """
        将所有部门工具注册到MCP实例
        
        Args:
            mcp_instance: FastMCP实例
        """
        mcp_instance.add_tool(self.get_depts, name="get_depts", description="获取部门列表。参数：可选params(Dict)包含筛选条件如limit(每页数量)、page(页码)、sort(排序字段)、order(排序方式asc/desc)、name(按部门名称搜索)等。不传参数时获取所有部门。")
        
        mcp_instance.add_tool(self.get_dept_detail, name="get_dept_detail", description="获取指定部门的详细信息。参数：dept_id(int，必填)部门ID。部门ID可从get_depts方法返回的列表中获取。") 